//
//  main.c
//  数组
//
//  Created by szcq on 2021/4/21.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    // insert code here...
//    printf("Hello, World!\n");
    
    
//    int nums[4] = {99,88};
//
//    printf("nums[0] == %i\n",nums[0]);
//    printf("nums[1] == %i\n",nums[1]);
//    printf("nums[2] == %i\n",nums[2]);
//    printf("nums[3] == %i\n",nums[3]);
    
//    int nums[101] = {[99] = 99,[100] = 100};
//    printf("nums[0] == %i\n",nums[0]);
//    printf("nums[1] == %i\n",nums[1]);
//    printf("nums[99] == %i\n",nums[99]);
//    printf("nums[100] == %i\n",nums[100]);
    
//    int nums[5] = {99,88};
//    int length = sizeof(nums)/sizeof(nums[0]);
//    for (int i = 0; i < length; i++) {
//        printf("nums[%i] == %i\n",i,nums[i]);
//    }
    
//    int num = 10;
//    char values[4] = {'j','a','c','k'};
//    printf("p_num = %p \n",&num);
//    printf("p_values = %p \n",&values);
//    /**
//     证明:变量寻址从大到小，先定义变量的地址 > 后定义变量的地址
//     p_num = 0x7ffeefbff4dc
//     p_values = 0x7ffeefbff4d8
//     */
//    printf("p_values[0] = %p \n",&values[0]);
//    printf("p_values[1] = %p \n",&values[1]);
//    printf("p_values[2] = %p \n",&values[2]);
//    printf("p_values[3] = %p \n",&values[4]);
//    /**
//     p_values[0] = 0x7ffeefbff4d8
//     p_values[1] = 0x7ffeefbff4d9
//     p_values[2] = 0x7ffeefbff4da
//     p_values[3] = 0x7ffeefbff4dc
//     */
//
//    /*
//     根据
//        p_values = 0x7ffeefbff4d8
//     p_values[0] = 0x7ffeefbff4d8
//     数组的地址  和 数组里第一个元素的地址  是一致的
//     */
    
    //证明 数组里的 元素的 存储方式也是 从 高位 -> 地位 存储
    
    int values[2] = {7,9};
    //    高位   -->                    低位
    // 7: 0000 0000 0000 0000 0000 0000 0000 0111
    //    高位   -->                    低位
    // 9: 0000 0000 0000 0000 0000 0000 0000 1001
    for (int j = 0; j < 2; j++) {
        int value = values[j];
        // 获取存储的每一位
        char *c = &value;
        for (int i = 0; i < sizeof(value); i++) {
            int result = c[i]; // 取出每个字节中存储的数据
            printf("v == %i\n", result);
        }
        printf("-----分割-----\n");
    }
//
    
   
    
    
    return 0;
}
